<template>
  <PageWrapper title="文件下载示例">
    <a-alert message="根据后台接口文件流下载" />
    <a-button type="primary" class="my-4" @click="handleDownByData"> 文件流下载 </a-button>

    <a-alert message="根据文件地址下载文件" />
    <a-button type="primary" class="my-4" @click="handleDownloadByUrl"> 文件地址下载 </a-button>

    <a-alert message="base64流下载" />
    <a-button type="primary" class="my-4" @click="handleDownloadByBase64"> base64流下载 </a-button>

    <a-alert message="图片Url下载,如果有跨域问题，需要处理图片跨域" />
    <a-button type="primary" class="my-4" @click="handleDownloadByOnlineUrl"> 图片Url下载 </a-button>
  </PageWrapper>
</template>
<script lang="ts">
  import { defineComponent } from "vue"
  import { downloadByUrl, downloadByData, downloadByBase64, downloadByOnlineUrl } from "/@/utils/file/download"
  import imgBase64 from "./imgBase64"
  import { PageWrapper } from "/@/components/Page"
  import { Alert } from "ant-design-vue"

  export default defineComponent({
    components: { PageWrapper, [Alert.name]: Alert },
    setup() {
      function handleDownByData() {
        downloadByData("text content", "testName.txt")
      }
      function handleDownloadByUrl() {
        downloadByUrl({
          url: "https://codeload.github.com/anncwb/vue-Jeecg-admin-doc/zip/master",
          target: "_self",
        })

        downloadByUrl({
          url: "https://vebn.oss-cn-beijing.aliyuncs.com/Jeecg/logo.png",
          target: "_self",
        })
      }

      function handleDownloadByBase64() {
        downloadByBase64(imgBase64, "logo.png")
      }

      function handleDownloadByOnlineUrl() {
        downloadByOnlineUrl(
          "https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5944817f47b8408e9f1442ece49d68ca~tplv-k3u1fbpfcp-watermark.image",
          "logo.png"
        )
      }
      return {
        handleDownloadByUrl,
        handleDownByData,
        handleDownloadByBase64,
        handleDownloadByOnlineUrl,
      }
    },
  })
</script>
